import sys
input = sys.stdin.readline
inf = float('inf')
def getInt():
return int(input())
def getStr():
return input().strip()
def getList(split=True):
s = getStr()
if split:
s = s.split()
return list(map(int, s))
t = getInt()
def solve():
n, m = getList()
a = getList()
q = getList()
from itertools import accumulate
p = list(accumulate(a))
gain = list(accumulate(p, max))
from bisect import bisect_left, bisect
for i in q:
if i <= gain[-1]:
it = bisect_left(gain, i)
print(it, end=" ")
elif p[-1] <= 0:
print(-1, end=" ")
else:
k = (i-gain[-1] + p[-1]-1) // (p[-1])
i -= p[-1]*k
res = n * k
if i:
res += bisect_left(gain, i)+1
print(res-1, end=" ")
print()
for _ in range(t):
solve()
227B - Effective Approach | 1534B - Histogram Ugliness |
1611B - Team Composition Programmers and Mathematicians | 110A - Nearly Lucky Number |
1220B - Multiplication Table | 1644A - Doors and Keys |
1644B - Anti-Fibonacci Permutation | 1610A - Anti Light's Cell Guessing |
349B - Color the Fence | 144A - Arrival of the General |
1106A - Lunar New Year and Cross Counting | 58A - Chat room |
230A - Dragons | 200B - Drinks |
13A - Numbers | 129A - Cookies |
1367B - Even Array | 136A - Presents |
1450A - Avoid Trygub | 327A - Flipping Game |
411A - Password Check | 1520C - Not Adjacent Matrix |
1538B - Friends and Candies | 580A - Kefa and First Steps |
1038B - Non-Coprime Partition | 43A - Football |
50A - Domino piling | 479A - Expression |
1480A - Yet Another String Game | 1216C - White Sheet |